//package com.hz.ruoyilgorder.config;
//
//import org.apache.shardingsphere.spi.keygen.ShardingKeyGenerator;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.jdbc.core.JdbcTemplate;
//
//import javax.annotation.PostConstruct;
//import java.util.Properties;
//import java.util.concurrent.atomic.AtomicLong;
//
//
//@Configuration
//public class CustomIdGenerator implements ShardingKeyGenerator {
//
//    private static final String ID_KEY = "lg_seller_order_max_id"; // 用于存储当前最大 ID 的键
//    private static AtomicLong counter;
//
//    @Autowired
//    private JdbcTemplate jdbcTemplate;  // 用于数据库操作
//
//    @PostConstruct
//    public void init() {
//        // 从数据库中读取上次的最大 ID
//        Long maxId = jdbcTemplate.queryForObject("SELECT max(id) FROM lg_seller_order", Long.class);
//        if (maxId != null) {
//            counter = new AtomicLong(maxId);  // 设置 AtomicLong 的初始值
//        } else {
//            counter = new AtomicLong(1000);  // 如果没有数据，则从 1000 开始
//        }
//    }
//
//    @Override
//    public Comparable<?> generateKey() {
//        // 返回自增的 ID
//        return counter.incrementAndGet();
//    }
//
//    @Override
//    public String getType() {
//        return "CUSTOM";
//    }
//
//    @Override
//    public Properties getProperties() {
//        return null;
//    }
//
//    @Override
//    public void setProperties(Properties properties) {
//    }
//}
